//
//  NSDate+Extension.swift
//  weibo14
//
//  Created by mac on 16/3/10.
//  Copyright © 2016年 mac. All rights reserved.
//

import Foundation

extension NSDate {
    
    // 通过一个方法 给时间字符串 进行格式化的方法
    
    class func string2Date(timeStr: String?) -> NSDate? {

        guard let str = timeStr else {
            return nil
        }
        
        // 初始化时间格式器
        let fm = NSDateFormatter()
        
        // 指定时间字符串的格式
        // 2016-03-09 11:02:18
        // yyyy-MM-dd HH:mm:ss
        fm.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        fm.locale = NSLocale(localeIdentifier: "en")
        
        return fm.dateFromString(str)
    }
    
    
    // 处理时间的的字符串
    var dateDescription: String?{
        
        let fm = NSDateFormatter()
        fm.locale = NSLocale(localeIdentifier: "en")
        
        // 取到日历对象
        let calendar = NSCalendar.currentCalendar()
        
        if isThisYear(self) {// 是今年的
            // return = "是今年"
            // 判断是否是今天
            if calendar.isDateInToday(self){
                // 是今天
                // 判断是否是 60s
                // 取到微博创建时间与当前时间的秒差值---传入的时间与现在的时间的差
                let result = -self.timeIntervalSinceNow
                if result < 60 {
                    return  "刚刚"
                } else if result < 3600 {
                    return  "\(Int(result/60))分钟前"
                }else {
                    return  "\(Int(result/3600))小时前"
                }
                
            }else if calendar.isDateInYesterday(self) {
                // 是昨天
                fm.dateFormat = "昨天 HH:mm"
                return  fm.stringFromDate(self)
            }else {
                // 其他,显示 03-09 20:20
                fm.dateFormat = "MM-dd HH:mm"
                return  fm.stringFromDate(self)
            }
        } else {
            fm.dateFormat = "yyyy-MM-dd"
            return  fm.stringFromDate(self)
        }
    }
    // 判断是否是今年的函数
    private func isThisYear(date:NSDate) -> Bool{
        
        // 首页先取出当前时间
        let currentDate = NSDate()
        
        let fm = NSDateFormatter()
        fm.locale = NSLocale(localeIdentifier: "en")
        // 只取年
        fm.dateFormat = "yyyy"
        
        let currentDateYearStr = fm.stringFromDate(currentDate)
        let targetDateYearStr = fm.stringFromDate(date)
        
        return currentDateYearStr == targetDateYearStr
    }
}
